$(function () {
    /*
        商品列表页逻辑：
            1 初步动态获取数据，渲染模板
            2 下拉刷新，上拉加载更多
    */


    /* 全局变量  -- 请求需发送的参数*/
    var sentData = {
        // 查找关键词
        query: '',
        // 分类id
        cid: getURL('cid'),
        // 页数
        pagenum: 1,
        // 每页长度
        pagesize: 10
    };
    // 全局变量 --  存储总页码数
    var pageTotal;

    init();

    // 初始化函数
    function init() {
        // 下拉刷新数据，上拉加载更多
        mui.init({
            pullRefresh: {
                container: ".pyg_view",
                down: {
                    auto: true,
                    //  触发下拉刷新时自动触发
                    callback: function () {
                        // 重置请求数据页为首页
                        sentData.pagenum = 1;

                        // 请求渲染商品列表
                        renderGoodsList(function (html) {
                            $('.goods_list').html(html);
                        });

                        // 结束下拉刷新
                        mui('.pyg_view').pullRefresh().endPulldownToRefresh();

                        // 重置上拉组件
                        mui('.pyg_view').pullRefresh().refresh(true);
                    }
                },
                up: {
                    //  触发上拉刷新时自动触发
                    callback: function () {
                        // 判断是否到达最后一页
                        if (sentData.pagenum >= pageTotal) {
                            // 结束上拉加载组件  没有数据传入true -- 提示没有数据了
                            mui('.pyg_view').pullRefresh().endPullupToRefresh(true);
                        } else {
                            // 若页数没到达最后一页需增加，获取下一页数据
                            sentData.pagenum++;

                            // 请求数据，追加渲染模板
                            renderGoodsList(function (html) {
                                $('.goods_list').append(html);
                            });

                            // 结束上拉加载组件  有数据传入false 
                            mui('.pyg_view').pullRefresh().endPullupToRefresh(false);
                        };
                    }
                }
            }
        });

        // 触发事件
        eventList();
    };

    // 监听事件函数
    function eventList() {
        /* 由于mui组件的原因,a标签不可以自动跳转，则需通过绑定点击事件，实现跳转 */ 
        // 由于a标签是动态生成的，所以需要委托注册事件
        $('.goods_list').on('tap','a',function(){
            // 实现页面跳转
            location.href = this.href;
        });
    };

    // 发送请求,获取数据,渲染模板
    function renderGoodsList(callback) {
        $.get('/goods/search', sentData, function (result) {
            if (result.meta.status == 200) {
                // 计算获取总页数
                pageTotal = Math.ceil(result.data.total / sentData.pagesize);

                // 动态生成html结构
                var html = template('glTpl', result.data);

                // 执行回调函数
                callback(html);
            } else {
                console.log("请求数据失败");
            }
        });
    };

    // 获取URL中的键值
    function getURL(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return decodeURI(r[2]);
        return null;
    };

})